#include<stdio.h>
#include<string.h>
int main()
{
    FILE*fp=fopen("./zhen","wb+");
    if(fp==NULL)
    {
        perror("fopen error");
        return -1;
    }
    //fseek(fp,0,SEEK_SET);
    char buff[]="linux so easy!";
    size_t ret =fwrite(buff,1,strlen(buff),fp);
    if(ret !=strlen(buff))
    {
        perror("fwrite error");
        return -1;
    }
    fseek(fp,0,SEEK_SET);

    char buff_new[100]={0};
    ret=fread(buff_new,1,100,fp);
    if(ret==0)
    {
        if(ferror(fp))
        {
            printf("fread error\n");
        }
        if(feof(fp))
        {
            printf("read end of file!\n");
        }
        return -1;
    }
    printf("%s\n",buff_new);
    fclose(fp);
    return 0;
}

//注意每次文件读写操作对应的文件指针都会移动到对应位置，下一次读写操作也是在这个位置开始，如果想读写指定位置，可以使用fseek函数改变指针位置

//多次打开文件，不使用fseek
//int main()
//{
//    FILE*fp=fopen("./zhen","wb+");
//    if(fp==NULL)
//    {
//        perror("fopen error");
//        return -1;
//    }
//    char buff[]="linux so easy!";
//    size_t ret =fwrite(buff,1,strlen(buff),fp);
//    if(ret !=strlen(buff))
//    {
//        perror("fwrite error");
//        return -1;
//    }
//    fclose(fp);
//    FILE*f=fopen("./bite","ab+");
//
//    char buff_new[100]={0};
//    ret=fread(buff_new,1,100,f);
//    if(ret==0)
//    {
//        if(ferror(fp))
//        {
//            printf("fread error\n");
//        }
//        if(feof(fp))
//        {
//            printf("read end of file!\n");
//        }
//        return -1;
//    }
//    printf("%s\n",buff_new);
//    fclose(f);
//    return 0;
//}
